﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.Text.RegularExpressions;

namespace Läxomatic
{
    public class Myskul
    {
        //Statisk klass för att kalla på databasen, laddar in uppgifter nedan;
        private static MySqlConnection _connection = new MySqlConnection(
                "Server=" + SavedData.loginData["server"] + 
                ";Database=" + SavedData.loginData["database"] + 
                ";UID="+ SavedData.loginData["user"] +
                ";Pwd="+SavedData.loginData["password"] +";");
        //skapar en anslutning, kör den specifierade strängen mot databasen, och returnerar en dubbel lista med strängar.
        public static List<List<String>> Command(string cmd)
        {
            try
            {
                _connection.Open();
            }
            catch (TimeoutException)
            {
                System.Windows.Forms.MessageBox.Show("Connection timed out", "Error");
                List<List<String>> temp = null;
                return temp;
            }
            MySqlCommand command = new MySqlCommand(cmd);
            command.Connection = _connection;
            MySqlDataReader results = command.ExecuteReader();
            List<List<String>> stringList= new List<List<String>>();
            try
            {
                while (results.Read())
                {
                    List<string> tempList = new List<String>();
 
                    for(int i = 0; i<results.FieldCount;i++)
                        tempList.Add(results.GetString(i));

                    stringList.Add(tempList);
                }
            }
            finally
            {
                results.Close();
                _connection.Close();
            }


            return stringList;
        }
        //Tar bort alla försök till SQL-injektioner, kalals då använadarinput tas in direkt.
        static public string checkIntrusion(string str)
        {
            return Regex.Replace(str, @"[\r\n\x00\x1a\\'""]", @"\$0");
        }
    }
}
